Place:
Unit
Unit Order
Selection
Piston Order

Power & Pistons – Core Rules

Examples

Tl;dr:

  • Generators power all adjacent tiles.

  • Wires conduct power to all adjacent tiles.

  • Pistons extend when powered and retract when losing power.

  • Wires are sticky and can be pulled by pistons.

  • Units provide a subgrid, i.e. an integrated circuit, that can be interacted with via the unit ports.

  • Blocks can be anchored to prevent them from being pulled or pushed.

  • Anchored Units will expose their subgrids, such that pistons can interact with their inner logic via their ports.

  • Check out the examples section for inspiration!

1. Grid & Ticks

  • The game runs on a 2D grid.

  • The world advances in discrete ticks.

  • During each tick:

    1. Power is propagated.

    2. Pistons decide whether to extend or retract.

    3. Piston actions resolve in a fixed order.

All actions in a tick are deterministic: either a piston fully succeeds, or it does nothing.


2. Block Types

Stone

  • Does nothing but existing.


Generator

  • Generators power their adjacent tiles.

  • Power spreads through:

    • Wires

    • Extended pistons


Wire

  • Wires transmit power in all directions.

  • Wires can be:

  • Wires are the only blocks that enable pulling chains.


Piston

  • Pistons are directional blocks that react to power.

Power Rules

  • A piston:

    • Extends when powered

    • Retracts when unpowered

    • Conducts power when extended

  • Pistons do not accept power from their front.

Extension Rules

  • When extending, a piston tries to push all blocks in front of it by one tile.

  • Pistons can push:

    • Wires

    • Generators

    • Units (if not blocked)

    • Unextended pistons

    • Out of the ports of units, interacting with the parent grid

    • Into the subgrids of anchored units

  • Pistons cannot push:

  • If anything blocks the chain, the piston does not extend.

Piston Heads

  • When extended, a piston creates a piston head in front of it.

  • Piston heads:

    • Occupy a tile

    • Block movement

    • Are removed when the piston retracts

Retraction Rules (Pulling)

  • A piston can pull blocks inward if:

    • The block directly in front of the piston head is a wire

    • The pulled chain consists of:

      • Any number of wires

      • At most one non-wire block between wires

  • The pull chain ends when:

    • An empty block is encountered

    • Two non-wire blocks are in the chain

    • An anchored block is encountered

  • Retraction is blocked when:

    • A valid pull chain is in front of the piston head, consisting of wires and at most one intermittent non-wire block

    • And somewhere in the pull chain is an extended piston or piston head

  • Pistons can therefore be extended and unpowered at the same time, as long as the pull chain is blocked.

Special use cases

  • Piston Chain: multiple pistons in line pointing into the same direction with wires inbetween will extend one by one when powered, if in the right order. When unpowered only the first extended piston in the chain will retract each tick, enabling ordered retraction of the whole chain over multiple ticks.

  • Timer: powered pistons will extend and in the next tick conduct power. Multiple pistons adjacent to each other will therefore extend one by one per tick if the first piston in the line is powered.

  • Storage: Extending a piston A with a wire in front, "docking" to an extended piston B or its piston head will keep piston A extended as long as piston B will remain extended, even if piston A is unpowered.


Unit

  • A unit occupies one tile on its parent grid.

  • Each unit contains its own internal grid (a sub-grid).

  • Units act as both:

    • A physical block

    • A portal into their internal structure

Units & Movement

  • Units can be pushed or pulled by pistons like blocks.

Traversing Units

  • Power can enter a unit through its ports (center tiles on each edge).

  • Pushes and pulls can exit a unit through its ports.

  • Pushes and pulls can enter an anchored unit through its ports. If unanchored, the unit will be pushed and pulled like a regular block.

  • Once inside, interactions continue inside the unit’s internal grid.

  • Traversing multiple units at once is possible.

Blocked Units

  • A unit is considered blocked if:

    • A piston is extended into it from outside

    • An internal piston is extended outward through a port

  • Blocked units cannot be moved and will block piston chains.


Collector

  • A collector is a directional block that stores blocks.

  • Each tick it interacts with the tile directly in front of it.

  • Collectors do not push or pull chains.

  • Unpowered: collects the tile in front of it into internal storage.

    • The tile must not be empty, anchored, blocked this tick, a piston head, or an extended piston.

    • The collector must have free storage space (max 25 blocks).

  • Powered from side or rear: places one stored block in front of it instead.

    • The front tile must be empty.

    • If no stored block is available, nothing happens.

Mover

  • A mover is a control block inside a unit that moves the unit itself.

  • When powered from exactly one direction, the unit moves one tile in that direction.

  • The target tile must be empty.

  • If the unit is blocked, the mover does nothing.

  • A unit can move at most once per tick.

3. Anchoring

What Anchoring Does

  • Anchoring can be applied to any block.

  • An anchored block:

    • Cannot be pushed

    • Cannot be pulled

    • Enables piston chains to enter units instead of pushing or pulling the unit itself

Anchored Units

  • Anchored units behave differently:

    • They do not move

    • Pistons, power, and movement may still enter the unit

  • Anchoring a unit turns it into a fixed gateway instead of a movable block.


4. Piston Resolution & Blocking

Atomic Actions

  • Every piston action is atomic:

    • Either the entire chain moves

    • Or nothing happens

Blocking

  • When a piston successfully executes:

    • All affected tiles become blocked for the rest of the tick

  • Blocked tiles:

    • Blocks occupying a blocked tile cannot be moved again during the current tick

    • Empty blocked tiles cannot be moved onto during the current tick

    • Prevent conflicting piston actions

This prevents paradoxes and race conditions.


5. Execution Order

Order of Operations (Per Tick)

  1. Power is cleared

  2. Power propagates from generators through wires and pistons

  3. Piston blockages are reset

  4. Pistons and units resolve according to their order

    • Earlier pistons may block later ones

    • Units execute in their assigned order and resolve their subgrid

Why Order Matters

  • Two pistons targeting the same space:

    • The one executed first may succeed

    • The other may fail due to blocking

  • This allows intentional timing and priority designs


6. Examples

Basic Anchoring Units
Basic Piston Chain
Basic Piston Extension Block
Basic Piston Retraction Block
Basic Wire Crossing
Basic Gates – AND
Basic Gates – NOT
Basic Gates – OR
Timing – Clock 1-1
Timing – Clock 2-1
Timing – Clock 20-12
Timing – Pulse Limiter
Latches – SR
Latches – T
Advanced Counter 3bit
Advanced Counter 8
Advanced Puller
Advanced Walker
Expert Sequencer In
Expert Sequencer Out
Blueprints
Available:
Mission Metadata
Starting Inventory
Inventory Setup
Mission Goals
Autocomplete Mission
Unit Validation Disabled
Port Validation
Inventory Validation Disabled
Mission Rewards
Mission Name
Author:
Difficulty:
Mission Goals
Unit Validation
Required Inventory
Required Variable
Mission Rewards
Hints & FAQ